Лекція 1

Тема 1: Середовище для проведення аналізу та обробки масивів даних

Заняття 1: Основи науки про дані. Введення в аналіз даних

Результати заняття

(слухач зможе)

  1. Розуміти порядок вивчення дисципліни та правила нарахування балів на навчальних і контрольних заняттях за змістовними модулями.
  2. Знати та вміти пояснити базові поняття науки про дані.
  3. Знати та вміти пояснити поняття "машинне навчання".

НАВЧАЛЬНИЙ ЧАС: 2 години.

Навчальна література:

  1. Робоча програма навчальної дисципліни “Прикладне програмування мовою Python”. Кафедра комп'ютерно-інтегрованих технологій та кібербезпеки, Житомирський військовий інститут імені С.П. Корольова, 2024.
  2. The Python Tutorial [Електронний ресурс] – Режим доступу до ресурсу: https://docs.python.org/3/tutorial/index.html.
  3. Machine Learning, ML. [Електронний ресурс] – Режим доступу до ресурсу: https://www.it.ua/knowledge-base/technology-innovation/machine-learning.
  4. Машинне навчання: що це таке, як працює і для чого використовується. [Електронний ресурс] – Режим доступу до ресурсу: https://goit.global/ua/articles/mashynne-navchannia-shcho-tse-take-iak-pratsiuie-i-dlia-choho-vykorystovuietsia/

ПЛАН ЗАНЯТТЯ

№ з/п Навчальні питання Час, хв
1 ВСТУПНА ЧАСТИНА 5
2 ОСНОВНА ЧАСТИНА 80
2.1 Порядок вивчення навчальної дисципліни 10
2.2 Основи науки про дані 30
2.3 Машинне навчання 40
3. ЗАКЛЮЧНА ЧАСТИНА 5

Навчальне питання 1. Порядок вивчення навчальної дисципліни

Метою вивчення дисципліни “Прикладне програмування мовою Python” є формування компетентностей визначених освітньо-професійною програмою:
CК8: Здатність використовувати спеціалізоване програмне забезпечення для оцінки ефективності бойового застосування підрозділу забезпечення, вирішення інших професійних завдань (за видами, родами Збройних Сил України, інших військових формувань, утворених відповідно до законів України).

Згідно з вимогами ОПП встановлені наступні програмні результати навчання (РН), якими повинен оволодіти курсант, після вивчення навчальної дисципліни:
РН 23. Виконувати комп'ютерні обчислення, що мають відношення до оцінки обстановки та/або ефективності бойового застосування підрозділу забезпечення (за видами, родами Збройних Сил України, інших військових формувань, утворених відповідно до законів України), використовуючи відповідне програмне забезпечення, вміти аналізувати та відображати результати таких обчислень.
Обсяг дисципліни і розподіл у годинах за формами організації освітнього процесу та видами навчальних занять

Передумовами для вивчення навчальної дисципліни “Прикладне програмування мовою Python” є знання курсантів, що отримані при вивченні дисциплін: “Вища математика”, “Технології програмування”, “Архітектура комп'ютера та операційні системи” та дисциплін школи: “Інформатика”, “Математика”. є здобуття базової середньої освіти.

1.1 Обсяг дисципліни

Вид занять Обсяг Аудиторні заняття Самостійна робота
лекційні 4 4 8
групові 52 38 56
практичні 50 50 -
мод. контроль 18 6 12
залік 6 2 4
Разом 180/6 100 80

1.2 Програма навчальної дисципліни

Тема 1. Середовище для обробки масивів даних


Тема 2. Обробка масивів даних. Машинне навчання з учителем


Тема 3. Збір та обробка даних із веб-ресурсів. Машинне навчання без учителя


1.3 Схема нарахування балів

Тема Бали Гр. зн. Пр. зн. (+ МП) МК
1 20 2 10 8
2 25 4 10 + 5 6
3 25 5 10 + 5 5
Всього 70 11 40 19
Екзамен 30
За дисц. 100

1.4 Відповідність підсумкових модульних рейтингових оцінок

Тема 1 Тема 2 Тема 3 Оцінка
20 - 18 25 - 22 25 - 22 Відмінно
17 - 15 21- 18 21 - 18 Добре
14 - 11 17 - 13 17 - 13 Задовільно
10 та менше 12 та менше 12 та менше Незадовільно

Навчальне питання 2. Основи науки про дані

Розглядаючи у цілому, усі інформаційні потреби, які виникають у повсякденній діяльності, є можливість задовольнити двома шляхами з використанням інформаційних технологій:

graph LR N([потреби]) --> Q[[вирішити завдання]] N --> A[[дати відповідь на питання]] Q --> App[Застосунок] Q --> S[Сервіс] Q --> W[Веб-сайт] A --> R[Доповідь] A --> P[Презентація] A --> R1[Пропозиції]

Рис. 1.1

В одному випадку для цього достатньо візуалізувати наявні дані, а в інших - необхідно володіти методологією та інструментом машинного навчання (machine learning). Особливо це актуально коли взаємозв'язки не очевидні, або такі що потребують врахування багатьох критеріїв.

Розглянемо як можливо почати виконання таких завдань із метою подальшого втілення у життя їх результатів. Як правило, цей процес має наступні кроки

graph TB J[Джерело 1] --> G[отримання] J1[Джерело 2] --> G J3[Джерело N] --> G G ==> P[попередня обробка] P ==> S[збереження] S ==> F[первинна обробка] F ==> A[аналіз] A ==> ML[машинне навчання]

Рис. 1.2

Першим кроком виконання є вияснення способу отримання усіх можливих даних, що на пряму чи опосередковано дають уявлення та описують процес чи явище, яке досліджується.

Другий крок - попередня обробка даних, з наступним третім кроком, що передбачає збереження даних. Для цього можуть використовуватися локальні файли (_xlsx, _.csv, _.db, _.json), так і хмарні сервіси для збереження інформації.

Ці перші три кроки називають у науці продані - Data engineering.

Четвертим кроком є очищення (первинна) обробка даних, що вміщує у собі у структурування. Окремим завданням є вирішення, яким чином будуть враховані дані, які тимчасово відсутні або були втрачені (прогалини даних).

П'ятим кроком - є аналіз даних (Exploratory Data Analysis - EDA). На цьому кроці передбачений статистичний аналіз, а також візуалізація, що дозволяє осягнути аналітику про можливі закони розподілу величин.

Четвертий та п'ятий крок називають Data Analysis.

Отже по виконанню п'ятого кроку, у випадку якщо завданням є дати відповідь на поставлене питання, є можливість створити звіт / доповідь, візуалізувати дані та оформити у вигляді презентації. І у подальшому надати їх посадовій особі, або іншим аналітикам для узагальнення.

У випадку необхідності створення кінцевого продукту на основі аналізу даних постає питання створення моделей машинного навчання. І це є шостим кроком.

У загальному моделі машинного навчання можна розділити на дів великі групи

graph LR M[Модель машинного навчання] ==> SL[З учителем<br/>Supervised Learning] M ==> USL[Без учителя<br/> Unsupervised Learning]

Рис. 1.3

При застосуванні Supervised Learning, як правило, вирішують завдання, що передбачають прогнозування розвитку процесу, що досліджується. У випадку Unsupervised Learning, як правило, здійснюється пошук закономірностей, взаємозв'язків між подіями.
П'ятий та шостий крок називають Machine Learning.

Отримані моделі машинного навчання є частиною кінцевого продукту, наприклад сервіс для певного програмного продукту, який функціонує на основі потоку даних. Такі продукти використовують для прийняття рішення на основі даних, прогнозування розвитку подій чи ситуацій, що склалися, моделювати варіанти вирішення певних завдань.

На кожному із описаних кроків є можливість використання бібліотек Python, що суттєво спрощує такі, здавалося б, достатньо складні завдання.


Навчальне питання 3. Машинне навчання

Історична довідка. Першу програму на основі алгоритмів, здатних самонавчатися, розробив Артур Самуель (Arthur Samuel) в 1952 році, призначена вона була для гри в шашки. Самуель дав і перше визначення терміну «машинне навчання»: це «область досліджень розробки машин, які не є заздалегідь запрограмованими». Більш точне визначення терміну «навчання» дав набагато пізніше Т. М. Мітчелл: кажуть, що комп'ютерна програма навчається на основі досвіду E по відношенню до деякого класу задач T і заходи якості P, якщо якість вирішення завдань з T, виміряний на основі P, поліпшується з набуттям досвіду E.

Вже в 1957 році була запропонована перша модель нейронної мережі, що реалізує алгоритми машинного навчання, схожі на сучасні. В даний час ведеться розробка самих різних систем машинного навчання, призначених для використання в таких технологіях майбутнього, як Інтернет Речей, Промисловий Інтернет Речей, в концепції «розумний» місто, при створенні безпілотного транспорту і в багатьох інших.

Машинне навчання (machine learning) - галузь досліджень штучного інтелекту (artificial intelligence), зосереджена на розробці та вивченні статистичних алгоритмів, що уточнюються за рахунок даних, з якими вони працюють.

Уточнення алгоритмів здійснюється на основі закладених правил знаходження оптимальних рішень. Як правило початок роботи виглядає як:

Тут треба наголосити, що суть алгоритмів полягає у створенні інструменту, що дозволяє на основі вхідних даних здійснити прогнозування значення цільових змінних. Алгоритми машинного навчання здійснюють оцінювання цільової змінної, а тому їх називають словом estimator. Створивши алгоритм машинного навчання - ми вважаємо, що він забезпечить пошук ознак та встановлення які із них є важливими, а які ні.

Для прикладу розглянемо випадок коли необхідно продати власний автомобіль, і стоїть питання, як оцінити вартість авто. Логічним кроком буде вивчення електронних ресурсів де продаються автівки з метою з'ясувати цінову політику. Порядок ціноутворення залежить від багатьох факторів: виробник, модель, рік виготовлення, пробіг, зовнішній вигляд та багато інших. Це і є ознаки, а ціна, яку ми хочемо визначити - цільова змінна.

Здавалося б чому не застосовувати для усього алгоритми машинного навчання. Але слід зауважити, що такі алгоритми добре працюють при наявності якісних та повних масивів даних для їх початкового навчання. А це достатньо трудомісткий процес, що передбачає підготовку та очищення даних.

Типові завдання, що можуть вирішуватися за допомогою машинного навчання:

3.1. Типи алгоритмів машинного навчання

Ці типи ми розглянули вище, а саме Supervised Learning та Unsupervised Learning. Зараз більш детально розглянемо їх суть.

Supervised Learning передбачає наявність ретроспективних даних для яких відома цільова змінна. Таким чином, є опрацьовані ознаки даних для яких визначена цільова змінна. У цьому разі ми можемо мати надію на те алгоритм машинного навчання визначить важливі ознаки у наявних даних, та у подальшому буде їх використовувати для передбачення значення цільової змінної на основі даних, що надходять.

Цільові змінні поділяються на два типи:

Прикладом класифікації є поділ усіх повідомлень за тематиками (політика, спорт, музика та інше). Прикладом регресійних завдань є ціна, температура та інше.

Unsupervised Learning відмінність та особливість такого підходу в відсутності оброблених ретроспективних даних. Це ускладнює завдання оцінювання правильності роботи моделі машинного навчання.

3.2. Нейронні мережі і глибоке навчання

Для машинного навчання використовують різні технології та алгоритми. Зокрема, можуть застосовуватися дискримінантний аналіз, байєсовські класифікатори та багато інших математичних методів. Але в кінці XX століття все більше уваги почали приділяти штучним нейронним мережам (ANN). Черговий вибух інтересу до них почався в 1986 році, після істотного розвитку т.зв. «Методу зворотного поширення помилки», який з успіхом застосували при навчанні нейронної мережі.

ANN є системою з'єднаних і взаємодіючих між собою штучних нейронів, виконаних на основі порівняно простих процесорів. Кожен процесор ANN періодично отримує сигнали від одних процесорів (або від сенсорів, або від інших джерел сигналів) і періодично посилає сигнали іншим процесорам. Всі разом ці прості процесори, з'єднані в мережу, здатні вирішувати досить складні завдання.

Найчастіше нейрони розташовуються в мережі за рівнями (їх ще називають шарами). Нейрони першого рівня — це, як правило, вхідні. Вони отримують дані ззовні (наприклад, від сенсорів системи розпізнавання осіб) і після їх обробки передають імпульси через синапси нейронів на наступному рівні. Нейрони на другому рівні (його називають прихованим, оскільки він безпосередньо не пов'язаний ні з входом, ні з виходом ANN) обробляють отримані імпульси і передають їх нейронам на вихідному рівні. Оскільки мова йде про імітацію нейронів, то кожен процесор вхідного рівня пов'язаний з декількома процесорами прихованого рівня, кожен з яких, в свою чергу, пов'язаний з декількома процесорами рівня вихідного. Така архітектура найпростішої ANN, яка здатна до навчання і може знаходити прості взаємозв'язку в даних.

Глибоке (глибинне) навчання може бути застосоване лише по відношенню до більш складних ANN, що містить кілька прихованих рівнів. При цьому рівні нейронів можуть чергуватися з шарами, які виконують складні логічні перетворення. Кожен наступний рівень мережі шукає взаємозв'язки в попередньому. Така ANN здатна знаходити не тільки прості взаємозв'язки, а й взаємозв'язки між взаємозв'язками. Саме завдяки переходу на нейромережу з глибинним навчанням компанії Google вдалося різко підвищити якість роботи свого популярного продукту «Перекладач». Зокрема, якість перекладу між англійською та французькою мовами підвищився відразу на 7 балів, тобто більш ніж на 20%. Попередня система, яка виконувала фразовий статистичний машинний переклад, домоглася подібного поліпшення за весь час свого існування (з 2006 року).


Висновок. Машинне навчання дозволяє не тільки покращувати наявні процеси, а й створювати революційні продукти та послуги. Воно перейшло до розряду найцінніших навичок найближчих років.